package bean;



import java.sql.Timestamp;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Operacao {
	private int idoperacao=0;
	private int idcliente=0;
	private int idbanco=0;
	private double taxa_juros=0.0;
	private Date data_cheque = null;
	private double valor_cheque=0.0;
	private int quante_dias=0;
	private Date inicio = new Date();
	
	private int getDias(Date date){
			Calendar calendar = Calendar.getInstance();
			calendar.setTime(date);
			calendar.set(calendar.get(Calendar.YEAR), (calendar.get(Calendar.MONTH)+1),-calendar.get(Calendar.DAY_OF_MONTH));
			int quantDias = calendar.get(Calendar.DATE);
		return quantDias;
	}
	public int getDias()throws ParseException{  
		int qtdDias=0;
		int anoInicial =0;  
		int mesInicio =0; 
		int diasFinais=0;
		int mesFinal=0;
	
			Calendar calini = Calendar.getInstance();   
		    Calendar calfim = Calendar.getInstance();   
		       calini.setTime(this.inicio);   
		       calfim.setTime(this.data_cheque); 
		   diasFinais= calfim.get(Calendar.DAY_OF_MONTH);
		 
		   anoInicial =  calini.get(Calendar.YEAR);  
		   mesInicio =(calini.get(Calendar.MONTH)+1);
		   mesFinal=(calfim.get(Calendar.MONTH)+1);
	          // calcula as diferencas
		
	      
	      Calendar calendar = Calendar.getInstance();
    	 
	      System.out.print(mesFinal-mesInicio);
	      for(int i =1;i<(mesFinal-mesInicio);i++ ){
	    	  calendar.set(anoInicial, mesInicio+i, 0); // O importante é o mes e o ano
	    	qtdDias =qtdDias+ calendar.get(Calendar.DATE); 
	    	
	    	 
	      }
	


	      System.out.print(this.getDias(this.inicio));
	 
		return  (mesFinal==mesInicio)?(diasFinais-this.getDias(this.inicio))+1:(qtdDias+diasFinais+this.getDias(this.inicio));
	}
	
	public String getDataInicioTela() {
		return  new SimpleDateFormat("dd/MM/yyyy").format(inicio);
	}
	
	public String getDataInicioBD() {
		return  new SimpleDateFormat("yyyy-MM-dd").format(inicio);
	}
	
	public void setDataInicioDdMmYyyy(String inicio) throws ParseException { 
		SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");  
		Date minhaData = format.parse(inicio); 
		this.inicio = minhaData;
	}
	public int getIdoperacao() {
		return idoperacao;
	}
	public void setIdoperacao(int idoperacao) {
		this.idoperacao = idoperacao;
	}
	public int getIdcliente() {
		return idcliente;
	}
	public void setIdcliente(int idcliente) {
		this.idcliente = idcliente;
	}
	public int getIdbanco() {
		return idbanco;
	}
	public void setIdbanco(int idbanco) {
		this.idbanco = idbanco;
	}
	public double getTaxa_juros() {
		return taxa_juros;
	}
	public void setTaxa_juros(double taxa_juros) {
		this.taxa_juros = taxa_juros;
	}
	public String getDatahequeTela() {
		if(data_cheque!=null){
	
		return  new SimpleDateFormat("dd/MM/yyyy").format(data_cheque);
		}
		
		return  "00/00/0000";
	}
	
	public String getDataChequeBD() {
		if(data_cheque!=null){
			return  new SimpleDateFormat("yyyy-MM-dd").format(data_cheque);
		}
		return "00/00/0000";	
		
	}
	
	public void setDatachequeDdMmYyyy(String data_cheque) throws ParseException { 
		SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");  
		Date minhaData = format.parse(data_cheque); 
		this.data_cheque = minhaData;
	}
	

	public double getValor_cheque() {
		return valor_cheque;
	}
	public void setValor_cheque(double valor_cheque) {
		this.valor_cheque = valor_cheque;
	}
	public int getQuante_dias() {
		return quante_dias;
	}
	public void setQuante_dias(int quante_dias) {
		this.quante_dias = quante_dias;
	}
	
	

}
